package com.ktgj.customer.service;

import java.util.List;

import com.ktgj.customer.domain.Customer;
import com.ktgj.customer.domain.GuaranteeCase;
import com.ktgj.customer.domain.dto.GuaranteeCaseDTO;
import com.ktgj.customer.domain.vo.*;

import javax.servlet.http.HttpServletRequest;

/**
 * 工单Service接口
 * 
 * @author ruoyi
 * @date 2022-03-15
 */
public interface IGuaranteeCaseService 
{
    /**
     * 查询工单
     * 
     * @param caseId 工单ID
     * @return 工单
     */
    public GuaranteeCase selectGuaranteeCaseById(Long caseId);

    /**
     * 查询工单列表
     * 
     * @param guaranteeCase 工单
     * @return 工单集合
     */
    public List<GuaranteeCase> selectGuaranteeCaseList(GuaranteeCase guaranteeCase);

    /**
     * 新增工单
     * 
     * @param guaranteeCase 工单
     * @return 结果
     */
    public int insertGuaranteeCase(GuaranteeCase guaranteeCase);

    /**
     * 修改工单
     * 
     * @param guaranteeCase 工单
     * @return 结果
     */
    public int updateGuaranteeCase(GuaranteeCase guaranteeCase);

    /**
     * 批量删除工单
     * 
     * @param caseIds 需要删除的工单ID
     * @return 结果
     */
    public int deleteGuaranteeCaseByIds(Long[] caseIds);

    /**
     * 删除工单信息
     * 
     * @param caseId 工单ID
     * @return 结果
     */
    public int deleteGuaranteeCaseById(Long caseId);

    /**
     * 查询工单
     * @param guaranteeCase
     * @return 工单
     */
    public List<GuaranteeCaseDTO> selectGuaranteeCase(GuaranteeCaseVO guaranteeCase);

    /**
     * 创建工单
     * @param guaranteeCaseAdd
     * @return
     */
    public boolean addGuaranteeCase(HttpServletRequest request, GuaranteeCaseAddVO guaranteeCaseAdd);

    /**
     * 后端——查询工单
     * */
    public List<TemporaryGuaranteeCase> backSelectGuaranteeCase(Long customerId) throws Exception;

    /**
     * 后端——条件查询工单
     * */
    public List<GuaranteeCase> backSelectGuaranteeCaseById(GuaranteeCaseVO guaranteeCase);

    /**
     * 后端——创建工单
     * */
    public int backInsertGuaranteeCase(HttpServletRequest request, GuaranteeCaseParameter guaranteeCaseParameter) throws Exception;
    /**
     * app--创建工单
     * */
    public int insertGuaranteeCase(HttpServletRequest request, GuaranteeCaseParameter guaranteeCaseParameter) throws Exception;

    /**
     * 后端——查询工单详细
     * */
    public GuaranteeCaseParameterVo backGuaranteeCaseById(Long caseId) throws Exception;
    /**
     *工单类列表
     */
    public List<TmpGuaranteeCaseVo> selectworkOrderType(Long deptId);

    /**
     * 查询待修改的工单信息
     * */
    public GuaranteeCaseParameter guaranteeCaseParameter(Long caseId);
}
